//
//  NSDate + Extension.swift
//  COPYCAT-Weibo
//
//  Created by 闫萌 on 1/5/16.
//  Copyright © 2016 RendezvousAuParadis. All rights reserved.
//

import UIKit

extension NSDate {
    
    ///  判断一个日期是否为今年
    ///
    ///  - returns: 是今年，为真，否则为假
    func isDateInThisYear() -> Bool {
        let df = RAPDateFormatter.sharedDateFormatter
        df.dateFormat = "yyyy"
        let targetYearStr = df.stringFromDate(self)
        
        let nowYearStr = df.stringFromDate(NSDate())
        
        return targetYearStr == nowYearStr
        
    }
    
    ///  将新浪服务器所返回的微博创建时间字符串转换为NSDate对象
    ///
    ///  - parameter dateString: 服务器所返回的日期字符串
    ///
    ///  - returns: 转换后的NSDate对象
    class func convertSINADateString(dateString: String) -> NSDate? {
        //            "created_at": "Tue May 31 17:46:55 +0800 2011"
        //            "%Y-%m-%d %H:%M:%S %z"
        let dateFormatter = RAPDateFormatter.sharedDateFormatter
        
        dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        
        return dateFormatter.dateFromString(dateString)
    }
    
    
    func SINADateDescription() -> String {
        
        let dateFormatter = RAPDateFormatter.sharedDateFormatter
        
        // 修改dateFormatter的格式
        if self.isDateInThisYear()    {
            // 日历对象
            let calendar = NSCalendar.currentCalendar()
            
            if calendar.isDateInToday(self) { // 是今天
                // 计算微博发布时间到在的秒数
                // 结果为负数
                let interval = abs(self.timeIntervalSinceNow)
                if interval < 60 { // 一分钟内
                    return "刚刚"
                } else if interval < 60 * 60 { // 一小时内
                    dateFormatter.dateFormat = "\(Int(interval / 60))分钟前" // 可以加汉字哈哈
                } else { // 其他
                    
                    dateFormatter.dateFormat = "\(Int(interval / (60 * 60)))小时前" // 可以加汉字，哈哈
                }
                
            } else if calendar.isDateInYesterday(self) { // 是昨天
                dateFormatter.dateFormat = "昨天 HH:mm" // 居然还可以加汉字，哈哈
            } else { // 其他
                dateFormatter.dateFormat = "MM dd HH:mm"
            }
            
        } else { // 不是今年
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
        }
        
        
        return dateFormatter.stringFromDate(self)
    }
}
